0 Prolog
↳1 PrologToDTProblemTransformerProof (⇒, 185 ms)
↳2 TRIPLES
↳3 TriplesToPiDPProof (⇒, 78 ms)
↳4 PiDP
↳5 DependencyGraphProof (⇔, 0 ms)
↳6 AND
↳7 PiDP
↳8 UsableRulesProof (⇔, 0 ms)
↳9 PiDP
↳10 PiDPToQDPProof (⇒, 0 ms)
↳11 QDP
↳12 QDPSizeChangeProof (⇔, 0 ms)
↳13 YES
↳14 PiDP
↳15 UsableRulesProof (⇔, 0 ms)
↳16 PiDP
↳17 PiDPToQDPProof (⇒, 0 ms)
↳18 QDP
↳19 QDPSizeChangeProof (⇔, 0 ms)
↳20 YES
↳21 PiDP
↳22 UsableRulesProof (⇔, 0 ms)
↳23 PiDP
↳24 PiDPToQDPProof (⇒, 0 ms)
↳25 QDP
↳26 QDPOrderProof (⇔, 67 ms)
↳27 QDP
↳28 PisEmptyProof (⇔, 0 ms)
↳29 YES
PALINDROMEE_IN_G(.(X1, .(X2, X3))) → U7_G(X1, X2, X3, lastB_in_ggaa(X2, X3, X4, X5))
PALINDROMEE_IN_G(.(X1, .(X2, X3))) → LASTB_IN_GGAA(X2, X3, X4, X5)
LASTB_IN_GGAA(X1, X2, X3, .(X1, X4)) → U2_GGAA(X1, X2, X3, X4, lastA_in_gaa(X2, X3, X4))
LASTB_IN_GGAA(X1, X2, X3, .(X1, X4)) → LASTA_IN_GAA(X2, X3, X4)
LASTA_IN_GAA(.(X1, X2), X3, .(X1, X4)) → U1_GAA(X1, X2, X3, X4, lastA_in_gaa(X2, X3, X4))
LASTA_IN_GAA(.(X1, X2), X3, .(X1, X4)) → LASTA_IN_GAA(X2, X3, X4)
PALINDROMEE_IN_G(.(X1, .(X2, X3))) → U8_G(X1, X2, X3, lastcB_in_ggaa(X2, X3, X4, X5))
U8_G(X1, X2, X3, lastcB_out_ggaa(X2, X3, X4, X5)) → U9_G(X1, X2, X3, halvesC_in_gaaa(X5, X6, X7, X8))
U8_G(X1, X2, X3, lastcB_out_ggaa(X2, X3, X4, X5)) → HALVESC_IN_GAAA(X5, X6, X7, X8)
HALVESC_IN_GAAA(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7) → U3_GAAA(X1, X2, X3, X4, X5, X6, X7, lastB_in_ggaa(X2, X3, X5, X8))
HALVESC_IN_GAAA(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7) → LASTB_IN_GGAA(X2, X3, X5, X8)
HALVESC_IN_GAAA(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7) → U4_GAAA(X1, X2, X3, X4, X5, X6, X7, lastcB_in_ggaa(X2, X3, X5, X8))
U4_GAAA(X1, X2, X3, X4, X5, X6, X7, lastcB_out_ggaa(X2, X3, X5, X8)) → U5_GAAA(X1, X2, X3, X4, X5, X6, X7, halvesC_in_gaaa(X8, X4, X6, X7))
U4_GAAA(X1, X2, X3, X4, X5, X6, X7, lastcB_out_ggaa(X2, X3, X5, X8)) → HALVESC_IN_GAAA(X8, X4, X6, X7)
PALINDROMEE_IN_G(X1) → U10_G(X1, halvesC_in_gaaa(X1, X2, X3, X4))
PALINDROMEE_IN_G(X1) → HALVESC_IN_GAAA(X1, X2, X3, X4)
PALINDROMEE_IN_G(X1) → U11_G(X1, halvescC_in_gaag(X1, X2, X3, odd))
U11_G(X1, halvescC_out_gaag(X1, X2, X3, odd)) → U12_G(X1, lastD_in_gag(X2, X4, X3))
U11_G(X1, halvescC_out_gaag(X1, X2, X3, odd)) → LASTD_IN_GAG(X2, X4, X3)
LASTD_IN_GAG(.(X1, X2), X3, .(X1, X4)) → U6_GAG(X1, X2, X3, X4, lastD_in_gag(X2, X3, X4))
LASTD_IN_GAG(.(X1, X2), X3, .(X1, X4)) → LASTD_IN_GAG(X2, X3, X4)
lastcB_in_ggaa(X1, [], X1, []) → lastcB_out_ggaa(X1, [], X1, [])
lastcB_in_ggaa(X1, X2, X3, .(X1, X4)) → U15_ggaa(X1, X2, X3, X4, lastcA_in_gaa(X2, X3, X4))
lastcA_in_gaa(.(X1, []), X1, []) → lastcA_out_gaa(.(X1, []), X1, [])
lastcA_in_gaa(.(X1, X2), X3, .(X1, X4)) → U14_gaa(X1, X2, X3, X4, lastcA_in_gaa(X2, X3, X4))
U14_gaa(X1, X2, X3, X4, lastcA_out_gaa(X2, X3, X4)) → lastcA_out_gaa(.(X1, X2), X3, .(X1, X4))
U15_ggaa(X1, X2, X3, X4, lastcA_out_gaa(X2, X3, X4)) → lastcB_out_ggaa(X1, X2, X3, .(X1, X4))
halvescC_in_gaag([], [], [], even) → halvescC_out_gaag([], [], [], even)
halvescC_in_gaag(.(X1, []), .(X1, []), [], odd) → halvescC_out_gaag(.(X1, []), .(X1, []), [], odd)
halvescC_in_gaag(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7) → U16_gaag(X1, X2, X3, X4, X5, X6, X7, lastcB_in_ggaa(X2, X3, X5, X8))
U16_gaag(X1, X2, X3, X4, X5, X6, X7, lastcB_out_ggaa(X2, X3, X5, X8)) → U17_gaag(X1, X2, X3, X4, X5, X6, X7, halvescC_in_gaag(X8, X4, X6, X7))
U17_gaag(X1, X2, X3, X4, X5, X6, X7, halvescC_out_gaag(X8, X4, X6, X7)) → halvescC_out_gaag(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7)
Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES
PALINDROMEE_IN_G(.(X1, .(X2, X3))) → U7_G(X1, X2, X3, lastB_in_ggaa(X2, X3, X4, X5))
PALINDROMEE_IN_G(.(X1, .(X2, X3))) → LASTB_IN_GGAA(X2, X3, X4, X5)
LASTB_IN_GGAA(X1, X2, X3, .(X1, X4)) → U2_GGAA(X1, X2, X3, X4, lastA_in_gaa(X2, X3, X4))
LASTB_IN_GGAA(X1, X2, X3, .(X1, X4)) → LASTA_IN_GAA(X2, X3, X4)
LASTA_IN_GAA(.(X1, X2), X3, .(X1, X4)) → U1_GAA(X1, X2, X3, X4, lastA_in_gaa(X2, X3, X4))
LASTA_IN_GAA(.(X1, X2), X3, .(X1, X4)) → LASTA_IN_GAA(X2, X3, X4)
PALINDROMEE_IN_G(.(X1, .(X2, X3))) → U8_G(X1, X2, X3, lastcB_in_ggaa(X2, X3, X4, X5))
U8_G(X1, X2, X3, lastcB_out_ggaa(X2, X3, X4, X5)) → U9_G(X1, X2, X3, halvesC_in_gaaa(X5, X6, X7, X8))
U8_G(X1, X2, X3, lastcB_out_ggaa(X2, X3, X4, X5)) → HALVESC_IN_GAAA(X5, X6, X7, X8)
HALVESC_IN_GAAA(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7) → U3_GAAA(X1, X2, X3, X4, X5, X6, X7, lastB_in_ggaa(X2, X3, X5, X8))
HALVESC_IN_GAAA(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7) → LASTB_IN_GGAA(X2, X3, X5, X8)
HALVESC_IN_GAAA(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7) → U4_GAAA(X1, X2, X3, X4, X5, X6, X7, lastcB_in_ggaa(X2, X3, X5, X8))
U4_GAAA(X1, X2, X3, X4, X5, X6, X7, lastcB_out_ggaa(X2, X3, X5, X8)) → U5_GAAA(X1, X2, X3, X4, X5, X6, X7, halvesC_in_gaaa(X8, X4, X6, X7))
U4_GAAA(X1, X2, X3, X4, X5, X6, X7, lastcB_out_ggaa(X2, X3, X5, X8)) → HALVESC_IN_GAAA(X8, X4, X6, X7)
PALINDROMEE_IN_G(X1) → U10_G(X1, halvesC_in_gaaa(X1, X2, X3, X4))
PALINDROMEE_IN_G(X1) → HALVESC_IN_GAAA(X1, X2, X3, X4)
PALINDROMEE_IN_G(X1) → U11_G(X1, halvescC_in_gaag(X1, X2, X3, odd))
U11_G(X1, halvescC_out_gaag(X1, X2, X3, odd)) → U12_G(X1, lastD_in_gag(X2, X4, X3))
U11_G(X1, halvescC_out_gaag(X1, X2, X3, odd)) → LASTD_IN_GAG(X2, X4, X3)
LASTD_IN_GAG(.(X1, X2), X3, .(X1, X4)) → U6_GAG(X1, X2, X3, X4, lastD_in_gag(X2, X3, X4))
LASTD_IN_GAG(.(X1, X2), X3, .(X1, X4)) → LASTD_IN_GAG(X2, X3, X4)
lastcB_in_ggaa(X1, [], X1, []) → lastcB_out_ggaa(X1, [], X1, [])
lastcB_in_ggaa(X1, X2, X3, .(X1, X4)) → U15_ggaa(X1, X2, X3, X4, lastcA_in_gaa(X2, X3, X4))
lastcA_in_gaa(.(X1, []), X1, []) → lastcA_out_gaa(.(X1, []), X1, [])
lastcA_in_gaa(.(X1, X2), X3, .(X1, X4)) → U14_gaa(X1, X2, X3, X4, lastcA_in_gaa(X2, X3, X4))
U14_gaa(X1, X2, X3, X4, lastcA_out_gaa(X2, X3, X4)) → lastcA_out_gaa(.(X1, X2), X3, .(X1, X4))
U15_ggaa(X1, X2, X3, X4, lastcA_out_gaa(X2, X3, X4)) → lastcB_out_ggaa(X1, X2, X3, .(X1, X4))
halvescC_in_gaag([], [], [], even) → halvescC_out_gaag([], [], [], even)
halvescC_in_gaag(.(X1, []), .(X1, []), [], odd) → halvescC_out_gaag(.(X1, []), .(X1, []), [], odd)
halvescC_in_gaag(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7) → U16_gaag(X1, X2, X3, X4, X5, X6, X7, lastcB_in_ggaa(X2, X3, X5, X8))
U16_gaag(X1, X2, X3, X4, X5, X6, X7, lastcB_out_ggaa(X2, X3, X5, X8)) → U17_gaag(X1, X2, X3, X4, X5, X6, X7, halvescC_in_gaag(X8, X4, X6, X7))
U17_gaag(X1, X2, X3, X4, X5, X6, X7, halvescC_out_gaag(X8, X4, X6, X7)) → halvescC_out_gaag(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7)
LASTD_IN_GAG(.(X1, X2), X3, .(X1, X4)) → LASTD_IN_GAG(X2, X3, X4)
lastcB_in_ggaa(X1, [], X1, []) → lastcB_out_ggaa(X1, [], X1, [])
lastcB_in_ggaa(X1, X2, X3, .(X1, X4)) → U15_ggaa(X1, X2, X3, X4, lastcA_in_gaa(X2, X3, X4))
lastcA_in_gaa(.(X1, []), X1, []) → lastcA_out_gaa(.(X1, []), X1, [])
lastcA_in_gaa(.(X1, X2), X3, .(X1, X4)) → U14_gaa(X1, X2, X3, X4, lastcA_in_gaa(X2, X3, X4))
U14_gaa(X1, X2, X3, X4, lastcA_out_gaa(X2, X3, X4)) → lastcA_out_gaa(.(X1, X2), X3, .(X1, X4))
U15_ggaa(X1, X2, X3, X4, lastcA_out_gaa(X2, X3, X4)) → lastcB_out_ggaa(X1, X2, X3, .(X1, X4))
halvescC_in_gaag([], [], [], even) → halvescC_out_gaag([], [], [], even)
halvescC_in_gaag(.(X1, []), .(X1, []), [], odd) → halvescC_out_gaag(.(X1, []), .(X1, []), [], odd)
halvescC_in_gaag(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7) → U16_gaag(X1, X2, X3, X4, X5, X6, X7, lastcB_in_ggaa(X2, X3, X5, X8))
U16_gaag(X1, X2, X3, X4, X5, X6, X7, lastcB_out_ggaa(X2, X3, X5, X8)) → U17_gaag(X1, X2, X3, X4, X5, X6, X7, halvescC_in_gaag(X8, X4, X6, X7))
U17_gaag(X1, X2, X3, X4, X5, X6, X7, halvescC_out_gaag(X8, X4, X6, X7)) → halvescC_out_gaag(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7)
LASTD_IN_GAG(.(X1, X2), X3, .(X1, X4)) → LASTD_IN_GAG(X2, X3, X4)
LASTD_IN_GAG(.(X1, X2), .(X1, X4)) → LASTD_IN_GAG(X2, X4)
From the DPs we obtained the following set of size-change graphs:
LASTA_IN_GAA(.(X1, X2), X3, .(X1, X4)) → LASTA_IN_GAA(X2, X3, X4)
lastcB_in_ggaa(X1, [], X1, []) → lastcB_out_ggaa(X1, [], X1, [])
lastcB_in_ggaa(X1, X2, X3, .(X1, X4)) → U15_ggaa(X1, X2, X3, X4, lastcA_in_gaa(X2, X3, X4))
lastcA_in_gaa(.(X1, []), X1, []) → lastcA_out_gaa(.(X1, []), X1, [])
lastcA_in_gaa(.(X1, X2), X3, .(X1, X4)) → U14_gaa(X1, X2, X3, X4, lastcA_in_gaa(X2, X3, X4))
U14_gaa(X1, X2, X3, X4, lastcA_out_gaa(X2, X3, X4)) → lastcA_out_gaa(.(X1, X2), X3, .(X1, X4))
U15_ggaa(X1, X2, X3, X4, lastcA_out_gaa(X2, X3, X4)) → lastcB_out_ggaa(X1, X2, X3, .(X1, X4))
halvescC_in_gaag([], [], [], even) → halvescC_out_gaag([], [], [], even)
halvescC_in_gaag(.(X1, []), .(X1, []), [], odd) → halvescC_out_gaag(.(X1, []), .(X1, []), [], odd)
halvescC_in_gaag(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7) → U16_gaag(X1, X2, X3, X4, X5, X6, X7, lastcB_in_ggaa(X2, X3, X5, X8))
U16_gaag(X1, X2, X3, X4, X5, X6, X7, lastcB_out_ggaa(X2, X3, X5, X8)) → U17_gaag(X1, X2, X3, X4, X5, X6, X7, halvescC_in_gaag(X8, X4, X6, X7))
U17_gaag(X1, X2, X3, X4, X5, X6, X7, halvescC_out_gaag(X8, X4, X6, X7)) → halvescC_out_gaag(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7)
LASTA_IN_GAA(.(X1, X2), X3, .(X1, X4)) → LASTA_IN_GAA(X2, X3, X4)
LASTA_IN_GAA(.(X1, X2)) → LASTA_IN_GAA(X2)
From the DPs we obtained the following set of size-change graphs:
HALVESC_IN_GAAA(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7) → U4_GAAA(X1, X2, X3, X4, X5, X6, X7, lastcB_in_ggaa(X2, X3, X5, X8))
U4_GAAA(X1, X2, X3, X4, X5, X6, X7, lastcB_out_ggaa(X2, X3, X5, X8)) → HALVESC_IN_GAAA(X8, X4, X6, X7)
lastcB_in_ggaa(X1, [], X1, []) → lastcB_out_ggaa(X1, [], X1, [])
lastcB_in_ggaa(X1, X2, X3, .(X1, X4)) → U15_ggaa(X1, X2, X3, X4, lastcA_in_gaa(X2, X3, X4))
lastcA_in_gaa(.(X1, []), X1, []) → lastcA_out_gaa(.(X1, []), X1, [])
lastcA_in_gaa(.(X1, X2), X3, .(X1, X4)) → U14_gaa(X1, X2, X3, X4, lastcA_in_gaa(X2, X3, X4))
U14_gaa(X1, X2, X3, X4, lastcA_out_gaa(X2, X3, X4)) → lastcA_out_gaa(.(X1, X2), X3, .(X1, X4))
U15_ggaa(X1, X2, X3, X4, lastcA_out_gaa(X2, X3, X4)) → lastcB_out_ggaa(X1, X2, X3, .(X1, X4))
halvescC_in_gaag([], [], [], even) → halvescC_out_gaag([], [], [], even)
halvescC_in_gaag(.(X1, []), .(X1, []), [], odd) → halvescC_out_gaag(.(X1, []), .(X1, []), [], odd)
halvescC_in_gaag(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7) → U16_gaag(X1, X2, X3, X4, X5, X6, X7, lastcB_in_ggaa(X2, X3, X5, X8))
U16_gaag(X1, X2, X3, X4, X5, X6, X7, lastcB_out_ggaa(X2, X3, X5, X8)) → U17_gaag(X1, X2, X3, X4, X5, X6, X7, halvescC_in_gaag(X8, X4, X6, X7))
U17_gaag(X1, X2, X3, X4, X5, X6, X7, halvescC_out_gaag(X8, X4, X6, X7)) → halvescC_out_gaag(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7)
HALVESC_IN_GAAA(.(X1, .(X2, X3)), .(X1, X4), .(X5, X6), X7) → U4_GAAA(X1, X2, X3, X4, X5, X6, X7, lastcB_in_ggaa(X2, X3, X5, X8))
U4_GAAA(X1, X2, X3, X4, X5, X6, X7, lastcB_out_ggaa(X2, X3, X5, X8)) → HALVESC_IN_GAAA(X8, X4, X6, X7)
lastcB_in_ggaa(X1, [], X1, []) → lastcB_out_ggaa(X1, [], X1, [])
lastcB_in_ggaa(X1, X2, X3, .(X1, X4)) → U15_ggaa(X1, X2, X3, X4, lastcA_in_gaa(X2, X3, X4))
U15_ggaa(X1, X2, X3, X4, lastcA_out_gaa(X2, X3, X4)) → lastcB_out_ggaa(X1, X2, X3, .(X1, X4))
lastcA_in_gaa(.(X1, []), X1, []) → lastcA_out_gaa(.(X1, []), X1, [])
lastcA_in_gaa(.(X1, X2), X3, .(X1, X4)) → U14_gaa(X1, X2, X3, X4, lastcA_in_gaa(X2, X3, X4))
U14_gaa(X1, X2, X3, X4, lastcA_out_gaa(X2, X3, X4)) → lastcA_out_gaa(.(X1, X2), X3, .(X1, X4))
HALVESC_IN_GAAA(.(X1, .(X2, X3))) → U4_GAAA(X1, X2, X3, lastcB_in_ggaa(X2, X3))
U4_GAAA(X1, X2, X3, lastcB_out_ggaa(X2, X3, X5, X8)) → HALVESC_IN_GAAA(X8)
lastcB_in_ggaa(X1, []) → lastcB_out_ggaa(X1, [], X1, [])
lastcB_in_ggaa(X1, X2) → U15_ggaa(X1, X2, lastcA_in_gaa(X2))
U15_ggaa(X1, X2, lastcA_out_gaa(X2, X3, X4)) → lastcB_out_ggaa(X1, X2, X3, .(X1, X4))
lastcA_in_gaa(.(X1, [])) → lastcA_out_gaa(.(X1, []), X1, [])
lastcA_in_gaa(.(X1, X2)) → U14_gaa(X1, X2, lastcA_in_gaa(X2))
U14_gaa(X1, X2, lastcA_out_gaa(X2, X3, X4)) → lastcA_out_gaa(.(X1, X2), X3, .(X1, X4))
lastcB_in_ggaa(x0, x1)
U15_ggaa(x0, x1, x2)
lastcA_in_gaa(x0)
U14_gaa(x0, x1, x2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
HALVESC_IN_GAAA(.(X1, .(X2, X3))) → U4_GAAA(X1, X2, X3, lastcB_in_ggaa(X2, X3))
U4_GAAA(X1, X2, X3, lastcB_out_ggaa(X2, X3, X5, X8)) → HALVESC_IN_GAAA(X8)
POL(.(x1, x2)) = 1 + x2
POL(HALVESC_IN_GAAA(x1)) = x1
POL(U14_gaa(x1, x2, x3)) = 1 + x3
POL(U15_ggaa(x1, x2, x3)) = 1 + x3
POL(U4_GAAA(x1, x2, x3, x4)) = x4
POL([]) = 1
POL(lastcA_in_gaa(x1)) = x1
POL(lastcA_out_gaa(x1, x2, x3)) = 1 + x3
POL(lastcB_in_ggaa(x1, x2)) = 1 + x2
POL(lastcB_out_ggaa(x1, x2, x3, x4)) = 1 + x4
lastcB_in_ggaa(X1, []) → lastcB_out_ggaa(X1, [], X1, [])
lastcB_in_ggaa(X1, X2) → U15_ggaa(X1, X2, lastcA_in_gaa(X2))
lastcA_in_gaa(.(X1, [])) → lastcA_out_gaa(.(X1, []), X1, [])
lastcA_in_gaa(.(X1, X2)) → U14_gaa(X1, X2, lastcA_in_gaa(X2))
U15_ggaa(X1, X2, lastcA_out_gaa(X2, X3, X4)) → lastcB_out_ggaa(X1, X2, X3, .(X1, X4))
U14_gaa(X1, X2, lastcA_out_gaa(X2, X3, X4)) → lastcA_out_gaa(.(X1, X2), X3, .(X1, X4))
lastcB_in_ggaa(X1, []) → lastcB_out_ggaa(X1, [], X1, [])
lastcB_in_ggaa(X1, X2) → U15_ggaa(X1, X2, lastcA_in_gaa(X2))
U15_ggaa(X1, X2, lastcA_out_gaa(X2, X3, X4)) → lastcB_out_ggaa(X1, X2, X3, .(X1, X4))
lastcA_in_gaa(.(X1, [])) → lastcA_out_gaa(.(X1, []), X1, [])
lastcA_in_gaa(.(X1, X2)) → U14_gaa(X1, X2, lastcA_in_gaa(X2))
U14_gaa(X1, X2, lastcA_out_gaa(X2, X3, X4)) → lastcA_out_gaa(.(X1, X2), X3, .(X1, X4))
lastcB_in_ggaa(x0, x1)
U15_ggaa(x0, x1, x2)
lastcA_in_gaa(x0)
U14_gaa(x0, x1, x2)